﻿''' <summary>
''' Sorgt für eine sich auf dem Spielfeld von Koordinate zu Koordinate bewegende Animation
''' </summary>
''' <remarks></remarks>
Public Class ObjektBewegteAnimation
    Inherits ObjektAnimation
    Protected Geschwindigkeit As PointF
    Protected Ziel As PointF
    Protected Bewegungsframe As Integer = 0
    Public Sub New(ByVal StartX As Integer, ByVal StartY As Integer, ByVal ZielX As Integer, ByVal ZielY As Integer, ByVal neuFrames As Integer, ByVal Animation As String, ByVal Musikspielen As Boolean, ByVal Dauer As Integer, ByVal Schlacht As Integer)
        MyBase.New(Musikspielen, Schlacht)
        P.X = StartX
        P.Y = StartY
        Frames = neuFrames
        BildID = LoadTextur(Animation, Frames)
        If Musikspielen = True Then
            If My.Computer.FileSystem.FileExists(My.Settings.Resourcenpfad + "Sound\" + Animation + ".wav") Then
                MusikEngine.LoadWav(My.Settings.Resourcenpfad + "Sound\" + Animation + ".wav", False)
            End If
        End If
        Geschwindigkeit = New PointF((ZielX - StartX) / Dauer, (ZielY - StartY) / Dauer)
        Ziel = New Point(ZielX, ZielY)
    End Sub
    Public Overrides Function Malen(ByVal IntColor As Color, Optional ByVal Zoomfaktor As Single = 1) As Boolean
        If MyBase.Malen(IntColor, Zoomfaktor) = False Then
            Frame = 0
        End If
        P.X += Geschwindigkeit.X
        P.Y += Geschwindigkeit.Y
        Bewegungsframe += 1
        If P.X = Ziel.X And P.Y = Ziel.Y Then
            Return False
        Else
            Return True
        End If
    End Function
End Class
